package com.distributeredis.redis_springboot.springboot_annotation_development.configuration_and_bean.config;

import com.distributeredis.redis_springboot.springboot_annotation_development.configuration_and_bean.Pojo.UserColorImport;
import com.distributeredis.redis_springboot.springboot_annotation_development.configuration_and_bean.Pojo.UserPojo;
import com.distributeredis.redis_springboot.springboot_annotation_development.configuration_and_bean.Pojo.UserRedImport;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
 * 给容器中注册组件，
 * 1、包扫描+组件标注注解（@Controller,@Service,@Repository等
 * 2、@Bean 导入第三方包里面的组件
 * 3、@Import快速给容器中导入一个组件
 *      3.1 @Import(要导入到容器中的组件），容器转中就会自动注册这个组件，id默认是全类名
 *      3.2 @ImportSelector：返回需要导入的组件的全类名数组
 *      3.3 @ImportBeanDefinitionRegister:手动注册bean到容器中
 * 4、使用spring提供的FactoryBean（工厂bean）
 */
// 配置类 == 配置文件
@Configuration  // 告诉spring这是一个配置类
//@Import(UserColorImport.class)  // 导入组件，id默认是组件的全类名
@Import({UserColorImport.class, UserRedImport.class})
public class MainConfig {
    // 给容器中注册一个Bean、类型为返回值的类型，id默认是用方法名作为id
//    @Bean("user")
    @Bean
    public UserPojo person() {
        return new UserPojo("lisi","33","男");
    }
}
